# @author: caoshi
# @date: 2023/1/26 12:06


# 当查找对象中的属性时, 若对象没有这个属性, 再去类中查找
# 否则查找到的就是对象本身这个属性的值


# 定义类
class Student:
    name: ''
    age: 0
    sex: ''
    score: 0

    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex


stu1 = Student('张三', 19, '男')
stu2 = Student('李四', 20, '男')
stu3 = Student('王五', 22, '女')
stu3.score = 102

# print(stu1.__dict__)
# print(stu2.__dict__)
# print(stu3.__dict__)

Student.score = 99

# stu1, stu2 的score属性值是一样的, stu3因为本身包含score属性, 所以就是它自己的
print(Student.score)
print(stu1.score)       # 99
print(stu2.score)       # 99
print(stu3.score)       # 102

# stu1, stu2 内存地址也是一样的, stu3 是自己的
print(id(Student.score))
print(id(stu1.score))
print(id(stu2.score))
print(id(stu3.score))
